import { CustomI18NITF } from '@INTERFACES/Common'
import { TRENDS_ENUM } from '@CONSTANTS/painLog'

interface PainItemITF extends CustomI18NITF{
  Name?: string

}
export interface PainSiteITF {
  DisplayText: PainItemITF
}

export interface PainLogITF {
  PainSites: PainSiteITF[]
  PainSite: CustomI18NITF
  PainLogId: string
  HeadPain?: boolean
  IsToday: boolean
  HeadPainSites: PainSiteITF[]
  BodyPainSites: PainItemITF[]
  TotalTime: number
  OverallRating: number
  Frequency: number
  EmptyData: boolean
  DateBucket: string
  OverallRatingChange: TRENDS_ENUM
  TotalTimeChange: TRENDS_ENUM
  FrequencyChange: TRENDS_ENUM
  Menstruation?: boolean
}

export type FormatPainLogsType = {
  [key in string]: FormatPainLogITF
}

export interface FormatPainLogITF {
  Day: string
  Month: string
  Logs: PainLogITF[]
}

export interface DaySummaryITF {
  Count: number
  EmptyData?: boolean
  DateBucket: string
  Frequency: number
  OverallRating: number
  TotalTime: number
}

export interface PainLogDaySummaryITF {
  AverageTime: number
  AverageRating: number
  AverageFrequency: number
  DaySummary: DaySummaryITF[]
}

export interface PainLogSummaryITF {
  BodyPain: number
  HeadPain: number
  PainLess: number
  PainDays: number
  Total: number
}

export interface PainLogOverallSummaryITF {
  MostPainTriggers: MostPaintITF[]
  MostPaintSites: MostPaintITF[]
}

export interface MostPaintITF extends PainItemITF{
  Count: number
  HeadPain?: boolean
}

export type HeadMapITF = {
  [key in string]: CustomI18NITF
}

